package com.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pojo.UserInfo;
import com.vo.UserInfoVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface UserInfoDAO extends BaseMapper<UserInfo> {

    @Select("select * from staff where sfz not like '$#%' and sfz is not null and sfz!=''")
    List<UserInfo> getAllNotEncryptSfz();

    List<UserInfoVo> shenheStaff(String name, int page, @Param("size") int limit);

    int shenhecount(String name);

    List<UserInfoVo> selectStaff(String name, int page, @Param("size") int limit);

    int count(String name);

    List<UserInfoVo> kuaidaoqiStaff(String name, int page, @Param("size") int limit, Date time, Date cstime);

    int kdqcount(String name, Date time, Date cstime);

    List<UserInfoVo> yidaoqiStaff(String name, int page, @Param("size") int limit, Date time);

    int ydqcount(String name, Date time);

    IPage<UserInfoVo> selectByQyWy(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("zhiye") String zhiye, @Param("guoji") String guoji, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList, @Param("ids") List<String> ids) ;

    int selectCountByQyWy(@Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("zhiye") String zhiye, @Param("guoji") String guoji, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList, @Param("ids") List<String> ids) ;

    List<UserInfo> selectByExport(@Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("zhiye") String zhiye, @Param("guoji") String guoji, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList, @Param("ids") List<String> ids);

    IPage<UserInfo> selectByGp(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("zkFlag") String zkFlag, @Param("zhiye") String zhiye, @Param("dataFlag") String dataFlag, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList) ;

    IPage<UserInfo> selectByGpByProblemData(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("zkFlag") String zkFlag, @Param("zhiye") String zhiye) ;

    List<UserInfoVo> exportExcelByGp(@Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("zkFlag") String zkFlag, @Param("zhiye") String zhiye, @Param("dataFlag") String dataFlag, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList) ;

    IPage<UserInfo> selectByKk(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("cardNo") String cardNo, @Param("zhiye") String zhiye, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList) ;
    IPage<UserInfo> selectByShbk(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status) ;
    IPage<UserInfoVo> selectStaffByCard(Page page, @Param("name") String name, @Param("status") int status, @Param("cardStatus") String cardStatus) ;
    public IPage<UserInfo> staffListByWy(Page page, @Param("wy") String wy) ;

    IPage<UserInfo> selectStaffByCard1(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status) ;

    int clearCard(@Param("id") String id) ;

    List<UserInfoVo> exportExcelByProblemData(@Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList);

    List<Map<String, Long>>  getGuojiCount();


    IPage<UserInfoVo> getStaffTrail(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("days") String days);

    List<UserInfoVo> getStaffTrailByExport(@Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("days") String days);

    IPage<UserInfoVo> selectByQrCode(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("zhiye") String zhiye, @Param("qrCode") String qrCode) ;

    IPage<UserInfoVo> selectStaffWhiteList(Page page, @Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("zhiye") String zhiye, @Param("whiteList") String whiteList, @Param("qrCode") String qrCode, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList) ;
    List<UserInfoVo> exportStaffWhiteList(@Param("name") String name, @Param("wuye") String wuye, @Param("qiye") String qiye, @Param("status") int status, @Param("zhiye") String zhiye, @Param("whiteList") String whiteList, @Param("qrCode") String qrCode, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList) ;

}
